Rules for integrands of the formP[x] (((a+b x))^m) (((c+d x))^n)

1.  ∫P[x] (((a+b x))^m) (((c+d x))^n)dx  when  b c+a d==0 ∧ m==n

1:  ∫P[x] (((a+b x))^m) (((c+d x))^n) dx  when  b c+a d==0 ∧ m==n ∧ (m∈ℤ ∨ a>0 ∧ c>0)

Derivation: Algebraic simplification

Basis: If  b c+a d==0 ∧ (m∈ℤ ∨ a>0 ∧ c>0), then (((a+b x))^m) (((c+d x))^m)==(((a c+b d (x^2)))^m)

Rule: If  b c+a d==0 ∧ m==n ∧ (m∈ℤ ∨ a>0 ∧ c>0), then

∫P[x] (((a+b x))^m) (((c+d x))^n) dx  ⟶  ∫ P[x] (((a c+b d (x^2)))^m)dx

Program code:

Int[Px_*(a_.+b_.*x_)^m_.*(c_.+d_.*x_)^n_.,x_Symbol] :=
  Int[Px*(a*c+b*d*x^2)^m,x] /;
FreeQ[{a,b,c,d,m,n},x] && PolyQ[Px,x] && EqQ[b*c+a*d,0] && EqQ[m,n] && (IntegerQ[m] || GtQ[a,0] && GtQ[c,0])

2:  ∫P[x] (((a+b x))^m) (((c+d x))^n) dx  when  b c+a d==0 ∧ m==n ∧ m∉ℤ

Derivation: Piecewise constant extraction

Basis: If  b c+a d==0, then (∂_x)(((((a+b x))^m) (((c+d x))^m))/(((a c+b d (x^2)))^m))==0

Rule: If  b c+a d==0 ∧ m==n ∧ m∉ℤ, then

∫P[x] (((a+b x))^m) (((c+d x))^n) dx  ⟶  (((((a+b x))^(FracPart[m])) (((c+d x))^(FracPart[m])))/(((a c+b d (x^2)))^(FracPart[m]))) ∫ P[x] (((a c+b d (x^2)))^m)dx

Program code:

Int[Px_*(a_.+b_.*x_)^m_*(c_.+d_.*x_)^n_,x_Symbol] :=
  (a+b*x)^FracPart[m]*(c+d*x)^FracPart[m]/(a*c+b*d*x^2)^FracPart[m]*Int[Px*(a*c+b*d*x^2)^m,x] /;
FreeQ[{a,b,c,d,m,n},x] && PolyQ[Px,x] && EqQ[b*c+a*d,0] && EqQ[m,n] && Not[IntegerQ[m]]

2:  ∫P[x] (((a+b x))^m) (((c+d x))^n)dx  when  PolynomialRemainder[P[x],a+b x,x]==0

Derivation: Algebraic expansion

Basis: If  PolynomialRemainder[P[x],a+b x,x]==0, then P[x]==(a+b x) PolynomialQuotient[P[x],a+b x,x]

Rule: If  PolynomialRemainder[P[x],a+b x,x]==0, then

∫P[x] (((a+b x))^m) (((c+d x))^n)dx  ⟶  ∫PolynomialQuotient[P[x],a+b x,x] (((a+b x))^(m+1)) (((c+d x))^n)dx

Program code:

Int[Px_*(a_.+b_.*x_)^m_.*(c_.+d_.*x_)^n_.,x_Symbol] :=
  Int[PolynomialQuotient[Px,a+b*x,x]*(a+b*x)^(m+1)*(c+d*x)^n,x] /;
FreeQ[{a,b,c,d,m,n},x] && PolyQ[Px,x] && EqQ[PolynomialRemainder[Px,a+b*x,x],0]

3:  ∫((P[x] (((c+d x))^n))/(a+b x))dx  when  n+(1/2)∈(SuperMinus[ℤ])

Derivation: Algebraic expansion

Rule: If  n+(1/2)∈(SuperMinus[ℤ]), then

∫((P[x] (((c+d x))^n))/(a+b x))dx  ⟶  ∫(1/(Sqrt[c+d x])) ExpandIntegrand[((P[x] (((c+d x))^(n+(1/2))))/(a+b x)),x]dx

Program code:

Int[Px_*(c_.+d_.*x_)^n_./(a_.+b_.*x_),x_Symbol] :=
  Int[ExpandIntegrand[1/Sqrt[c+d*x],Px*(c+d*x)^(n+1/2)/(a+b*x),x],x] /;
FreeQ[{a,b,c,d,n},x] && PolyQ[Px,x] && ILtQ[n+1/2,0] && GtQ[Expon[Px,x],2]

4:  ∫P[x] (((a+b x))^m) (((c+d x))^n)dx  when  (m|n)∈ℤ ∨ m+2∈(SuperPlus[ℤ])

Derivation: Algebraic expansion

Rule: If (m|n)∈ℤ ∨ m+2∈(SuperPlus[ℤ]), then

∫P[x] (((a+b x))^m) (((c+d x))^n)dx  ⟶  ∫ExpandIntegrand[P[x] (((a+b x))^m) (((c+d x))^n),x]dx

Program code:

Int[Px_*(a_.+b_.*x_)^m_.*(c_.+d_.*x_)^n_.,x_Symbol] :=
  Int[ExpandIntegrand[Px*(a+b*x)^m*(c+d*x)^n,x],x] /;
FreeQ[{a,b,c,d,m,n},x] && PolyQ[Px,x] && (IntegersQ[m,n] || IGtQ[m,-2]) && GtQ[Expon[Px,x],2]

5:  ∫P[x] (((a+b x))^m) (((c+d x))^n)dx  when  m<-1

Derivation: Algebraic expansion and linear recurrence 3

Basis: Let Q[x]->PolynomialQuotient[P[x],a+b x,x]and R->PolynomialRemainder[P[x],a+b x,x], then P[x]==Q[x] (a+b x)+R

Note: If the integrand has a negative integer exponent, incrementing it, rather than another negative fractional exponent, produces simpler antiderivatives.

Rule: If  m<-1, let Q[x]->PolynomialQuotient[P[x],a+b x,x]and R->PolynomialRemainder[P[x],a+b x,x], then

∫P[x] (((a+b x))^m) (((c+d x))^n)dx  ⟶  

∫Q[x] (((a+b x))^(m+1)) (((c+d x))^n)dx+R ∫(((a+b x))^m) (((c+d x))^n)dx  ⟶  

((R (((a+b x))^(m+1)) (((c+d x))^(n+1)))/((m+1) (b c-a d)))+(1/((m+1) (b c-a d))) ∫(((a+b x))^(m+1)) (((c+d x))^n)((m+1) (b c-a d)Q[x]-d R (m+n+2))dx

Program code:

Int[Px_*(a_.+b_.*x_)^m_*(c_.+d_.*x_)^n_.,x_Symbol] :=
  With[{Qx=PolynomialQuotient[Px,a+b*x,x], R=PolynomialRemainder[Px,a+b*x,x]},
  R*(a+b*x)^(m+1)*(c+d*x)^(n+1)/((m+1)*(b*c-a*d)) + 
  1/((m+1)*(b*c-a*d))*Int[(a+b*x)^(m+1)*(c+d*x)^n*ExpandToSum[(m+1)*(b*c-a*d)*Qx-d*R*(m+n+2),x],x]] /;
FreeQ[{a,b,c,d,n},x] && PolyQ[Px,x] && ILtQ[m,-1] && GtQ[Expon[Px,x],2]

Int[Px_*(a_.+b_.*x_)^m_*(c_.+d_.*x_)^n_.,x_Symbol] :=
  With[{Qx=PolynomialQuotient[Px,a+b*x,x], R=PolynomialRemainder[Px,a+b*x,x]},
  R*(a+b*x)^(m+1)*(c+d*x)^(n+1)/((m+1)*(b*c-a*d)) + 
  1/((m+1)*(b*c-a*d))*Int[(a+b*x)^(m+1)*(c+d*x)^n*ExpandToSum[(m+1)*(b*c-a*d)*Qx-d*R*(m+n+2),x],x]] /;
FreeQ[{a,b,c,d,n},x] && PolyQ[Px,x] && LtQ[m,-1] && GtQ[Expon[Px,x],2]

6:  ∫(Subscript[P, q])[x] (((a+b x))^m) (((c+d x))^n)dx  when  m+n+q+1≠0

Derivation: Algebraic expansion and linear recurrence 2

Rule: If  m+n+q+1≠0, then

∫(Subscript[P, q])[x] (((a+b x))^m) (((c+d x))^n)dx  ⟶  

∫((Subscript[P, q])[x]-(((Subscript[P, q])[x,q])/(b^q)) (((a+b x))^q)) (((a+b x))^m) (((c+d x))^n)dx+(((Subscript[P, q])[x,q])/(b^q)) ∫(((a+b x))^(m+q)) (((c+d x))^n)dx  ⟶  

(((Subscript[P, q])[x,q] (((a+b x))^(m+q)) (((c+d x))^(n+1)))/(d (b^q) (m+n+q+1)))+(1/(d (b^q) (m+n+q+1))) ∫(((a+b x))^m) (((c+d x))^n)·
(d (b^q) (m+n+q+1) (Subscript[P, q])[x]-d (Subscript[P, q])[x,q] (m+n+q+1) (((a+b x))^q)-(Subscript[P, q])[x,q] (b c-a d) (m+q) (((a+b x))^(q-1)))dx

Program code:

Int[Px_*(a_.+b_.*x_)^m_.*(c_.+d_.*x_)^n_.,x_Symbol] :=
  With[{q=Expon[Px,x],k=Coeff[Px,x,Expon[Px,x]]},
  k*(a+b*x)^(m+q)*(c+d*x)^(n+1)/(d*b^q*(m+n+q+1)) + 
  1/(d*b^q*(m+n+q+1))*Int[(a+b*x)^m*(c+d*x)^n*
    ExpandToSum[d*b^q*(m+n+q+1)*Px-d*k*(m+n+q+1)*(a+b*x)^q-k*(b*c-a*d)*(m+q)*(a+b*x)^(q-1),x],x] /;
  NeQ[m+n+q+1,0]] /;
FreeQ[{a,b,c,d,m,n},x] && PolyQ[Px,x] && GtQ[Expon[Px,x],2]